/**
 * 
 */
package com.dashboard.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.dashboard.dao.OrganizacaoDao;
import com.dashboard.domain.Organizacao;

/**
 * @author Joao
 * 
 */
@Service
public class ServicoOrganizacaoImpl implements ServicoOrganizacao 
{
	private OrganizacaoDao organizacaoDao;

	/**
	 * Construtor com os daos necess&aacute;rios para inje&ccedil;&atilde;o.
	 * 
	 * @param organizacaoDao o dao de organiza&ccedil;&atilde;o.
	 */
	@Autowired
	public ServicoOrganizacaoImpl(OrganizacaoDao organizacaoDao) 
	{
		this.organizacaoDao = organizacaoDao;
	}

	/**
	 * {@inheritDoc}
	 */
	@Transactional
	public void criar(Organizacao organizacao) 
	{
		organizacaoDao.persistir(organizacao);
	}
	
	/**
	 * {@inheritDoc}
	 */
	@Transactional
	public void atualizar(Organizacao organizacao) 
	{
		organizacaoDao.atualizar(organizacao);
	}
	
	/**
	 * {@inheritDoc}
	 */
	@Transactional
	public void remover(Organizacao organizacao) 
	{
		organizacaoDao.apagar(organizacao);
	}

	/**
	 * {@inheritDoc}
	 */
	public List<Organizacao> listarTodos() 
	{
		return organizacaoDao.recuperarTodos();
	}

	/**
	 * {@inheritDoc}
	 */
	public Organizacao recuperar(Long id) 
	{
		return organizacaoDao.recuperar(id);
	}
}